<!DOCTYPE html>
<html>
<head lang="en">
	<meta charset="UTF-8">
	<title>Ленинград. Стоимости игр для 3 игроков.</title>

	<style type="text/css">
		table.results {
			border-collapse: collapse;
		}
		table.results th {
			font-weight: normal;
			color: #878069;
			background-color: #F8F4E7;
			border: 1px solid #DDDDDD;
			padding: 5px;
		}
		/*
				table.competitionsList td {
					padding: 5px;
					border: 1px solid #DDDDDD;
				}
		*/
		table.results td {
			padding: 0 5px;
			border: 1px solid #DDDDDD;
			text-align: right;
		}
		table.results td.center {
			text-align: center;
		}
		table.results td.left {
			text-align: left;
		}

		table.results tr.odd {
			background-color: #F7F6EB;
		}
		table.results tr.even {
		}

		table.results td.positivePoints {
			color: #2F8415;
		}
		table.results td.negativePoints {
			color: #FF0000;
		}

		table.results td.leftSeparate, table.results th.leftSeparate {
			border-left: 3px solid #DDDDDD;
		}
		table.results td.rightSeparate, table.results th.rightSeparate {
			border-right: 3px solid #DDDDDD;
		}
		table.results td.topSeparate, table.results th.topSeparate {
			border-top: 3px solid #DDDDDD;
		}

		table.results tr.summary td {
			border-top: 2px solid #DDDDDD;
		}

		h3 {
			color: #878069;
			margin-bottom: 5px;
			margin-top: 20px;
		}

		.attent {
			color: #FF0000;
		}
	</style>

</head>
<body>

<div id="results-container"></div>

<script type="text/javascript">
	var PLAYER_NAME = 'Играющий';
	var WHIST_NAME = 'Вист';
	var PASS_NAME = 'Пас';

	var RESULTS_CONTAINER_DIV_ID = 'results-container';
	var POOL_RECORD_SEPARATOR = ', ';

	var tablesCount = 0;
	var rowsCount = 0;

	function convertNumber(number) {
		var numberAbs = Math.abs(number);
		var numberX100 = (numberAbs * 100);
		var last2digits = Math.floor(numberX100 % 100);
		var integerPart = Math.floor(numberAbs);

		var integerPartStr = (number >= 0) ? integerPart : ('&minus; ' + integerPart);

		if (last2digits == 0)
			return integerPartStr;

		if (last2digits == 33)
			return integerPartStr + '.33';

		if (last2digits == 66)
			return integerPartStr + '.66';
	}

	function getRowClass() {
		var rowClass = (rowsCount % 2 == 0) ? 'even' : 'odd';
		rowsCount++;
		return rowClass;
	}

	function getResultRow(config) {
		var html = '';
		html += '<tr class="' + getRowClass() + '">';
//		html += '<td>' + config.title + '</td>';
//		html += '<td>' + convertNumber(config.totalWhists1) + '</td>';
		html += '<td class="left">' + config.player2 + '</td>';
		html += '<td>' + convertNumber(config.totalWhists2) + '</td>';
		html += '<td class="left">' + config.player3 + '</td>';
		html += '<td>' + convertNumber(config.totalWhists3) + '</td>';
		html += '<td class="left leftSeparate">' + config.poolRecords1 + '</td>';
		html += '<td class="left">' + config.poolRecords2 + '</td>';
		html += '<td class="left">' + config.poolRecords3 + '</td>';
		html += '</tr>';

		return html;
	}

	function getTableBlock(config) {
		var i;

		for (i = 0; i < config.games.length; i++)
		{
			countPoolFor3Players( config.games[i] );
		}

		var html = '';

		// firstRow
		var firstGame = config.games[0];

		html += '<tr class="' + getRowClass() + '">';
		html += '<td rowspan="' + config.games.length + '" class="left">' + config.title + '</td>';
		html += '<td rowspan="' + config.games.length + '">' + convertNumber(firstGame.totalWhists1) + '</td>';
		html += '<td class="left">' + firstGame.player2 + '</td>';
		html += '<td>' + convertNumber(firstGame.totalWhists2) + '</td>';
		html += '<td class="left">' + firstGame.player3 + '</td>';
		html += '<td>' + convertNumber(firstGame.totalWhists3) + '</td>';
		html += '<td class="left leftSeparate">' + firstGame.poolRecords1 + '</td>';
		html += '<td class="left">' + firstGame.poolRecords2 + '</td>';
		html += '<td class="left">' + firstGame.poolRecords3 + '</td>';
		html += '</tr>';


		for (i = 1; i < config.games.length; i++)
		{
			html += getResultRow( config.games[i] );
		}

		return html;

//		document.getElementById(containerId).innerHTML += html;
	}

	function addGameTable(config) {
		var i;
		var tableBodyId = 'table-' + tablesCount + '-tbody';

		var html = '';

		html += '<h3>' + config.title + '</h3>';

		html += '<table class="results">';
		html += 	'<tbody id="'+ tableBodyId + '">';
		html += 	'<tr>';
		html += 		'<th rowspan="2">Игра</th>';
		html += 		'<th>Играющий</th>';
		html += 		'<th colspan="2">Вистующий 1</th>';
		html += 		'<th colspan="2">Вистующий 2</th>';
		html += 		'<th colspan="3" class="leftSeparate">Записи в пулю</th>';
		html += 	'</tr>';
		html += 	'<tr>';
		html += 		'<th>Висты</th>';
		html += 		'<th>Заявка</th>';
		html += 		'<th>Висты</th>';
		html += 		'<th>Заявка</th>';
		html += 		'<th>Висты</th>';
		html += 		'<th class="leftSeparate">Играющий</th>';
		html += 		'<th>Вистующий 1</th>';
		html += 		'<th>Вистующий 2</th>';
		html += 	'</tr>';

		for (i = 0; i < config.blocks.length; i++)
		{
			html += getTableBlock( config.blocks[i] );
		}

		html += 	'</tbody>';
		html += '</table>';


		document.getElementById(RESULTS_CONTAINER_DIV_ID).innerHTML += html;

		tablesCount++;
	}

	function countPoolFor3Players(config) {
		// пуля
		var pool1 = config.pool1 || 0;
		var pool2 = config.pool2 || 0;
		var pool3 = config.pool3 || 0;

		// гора
		var dump1 = config.dump1 || 0;
		var dump2 = config.dump2 || 0;
		var dump3 = config.dump3 || 0;

		// висты
		var whists12 = config.whists12 || 0;
		var whists13 = config.whists13 || 0;

		var whists21 = config.whists21 || 0;
		var whists23 = config.whists23 || 0;

		var whists31 = config.whists31 || 0;
		var whists32 = config.whists32 || 0;

		// максимальная пуля
		var maxPool = Math.max(pool1, pool2, pool3);

		// Ленинград - пуля = 2 горы
		var totalDump1 = dump1 + ( (maxPool - pool1) * 2 );
		var totalDump2 = dump2 + ( (maxPool - pool2) * 2 );
		var totalDump3 = dump3 + ( (maxPool - pool3) * 2 );

		// минимальная суммарная гора
		var minTotalDump = Math.min(totalDump1, totalDump2, totalDump3);

		// амнистируем общую гору на минимальную пулю
		totalDump1 -= minTotalDump;
		totalDump2 -= minTotalDump;
		totalDump3 -= minTotalDump;

		// средняя гора
		var avgDump = (totalDump1 + totalDump2 + totalDump3) / 3;

		// счет по пуле и горе
		var poolWhists1 = (avgDump - totalDump1) * 10;
		var poolWhists2 = (avgDump - totalDump2) * 10;
		var poolWhists3 = (avgDump - totalDump3) * 10;

		var poolWhistsSum = poolWhists1 + poolWhists2 + poolWhists3;
		if ( poolWhistsSum > 0.02 )
		{
			alert('Сумма вистов по пуле и горе не равна 0: ' + poolWhistsSum);
			return;
		}

		// счет по вистам
		var whists1 = (whists12 - whists21) + (whists13 - whists31);
		var whists2 = (whists21 - whists12) + (whists23 - whists32);
		var whists3 = (whists31 - whists13) + (whists32 - whists23);

		// проверяем, что сумма вистов равна 0
		var whistsSum = whists1 + whists2 + whists3;
		if ( whistsSum != 0 )
		{
			alert('Сумма вистов не равна 0: ' + whistsSum);
			return;
		}

		var totalWhists1 = poolWhists1 + whists1;
		var totalWhists2 = poolWhists2 + whists2;
		var totalWhists3 = poolWhists3 + whists3;

		var totalWhistsSum = totalWhists1 + totalWhists2 + totalWhists3;
		if ( whistsSum != 0 )
		{
			alert('Общая сумма вистов не равна 0: ' + totalWhistsSum);
			return;
		}

		config.totalWhists1 = totalWhists1;
		config.totalWhists2 = totalWhists2;
		config.totalWhists3 = totalWhists3;

		fillPoolRecords(config);
	}
	function fillPoolRecords(config) {
		var poolRecords1 = '';
		var poolRecords2 = '';
		var poolRecords3 = '';

		if (config.pool1) poolRecords1 += POOL_RECORD_SEPARATOR + 'пуля: ' + config.pool1;
		if (config.dump1) poolRecords1 += POOL_RECORD_SEPARATOR + 'гора: ' + config.dump1;
//		if (config.whists12) poolRecords1 += POOL_RECORD_SEPARATOR + 'висты на вистующего 1: ' + config.whists12;
//		if (config.whists13) poolRecords1 += POOL_RECORD_SEPARATOR + 'висты на вистующего 2: ' + config.whists13;
		if (config.whists12) poolRecords1 += POOL_RECORD_SEPARATOR + 'висты на В1: ' + config.whists12;
		if (config.whists13) poolRecords1 += POOL_RECORD_SEPARATOR + 'висты на В2: ' + config.whists13;

		if (config.pool2) poolRecords2 += POOL_RECORD_SEPARATOR + 'пуля: ' + config.pool2;
		if (config.dump2) poolRecords2 += POOL_RECORD_SEPARATOR + 'гора: ' + config.dump2;
//		if (config.whists21) poolRecords2 += POOL_RECORD_SEPARATOR + 'висты на играющего: ' + config.whists21;
//		if (config.whists23) poolRecords2 += POOL_RECORD_SEPARATOR + 'висты на вистующего 2: ' + config.whists23;
//		if (config.whists21) poolRecords2 += POOL_RECORD_SEPARATOR + 'висты на И: ' + config.whists21;
		if (config.whists21) poolRecords2 += POOL_RECORD_SEPARATOR + 'висты: ' + config.whists21; // очевидно, что висты пишутся только на играющего
		if (config.whists23) poolRecords2 += POOL_RECORD_SEPARATOR + 'висты на В2: ' + config.whists23;

		if (config.pool3) poolRecords3 += POOL_RECORD_SEPARATOR + 'пуля: ' + config.pool3;
		if (config.dump3) poolRecords3 += POOL_RECORD_SEPARATOR + 'гора: ' + config.dump3;
//		if (config.whists31) poolRecords3 += POOL_RECORD_SEPARATOR + 'висты на играющего: ' + config.whists31;
//		if (config.whists32) poolRecords3 += POOL_RECORD_SEPARATOR + 'висты на вистующего 1: ' + config.whists32;
//		if (config.whists31) poolRecords3 += POOL_RECORD_SEPARATOR + 'висты на И: ' + config.whists31;
		if (config.whists31) poolRecords3 += POOL_RECORD_SEPARATOR + 'висты: ' + config.whists31; // очевидно, что висты пишутся только на играющего
		if (config.whists32) poolRecords3 += POOL_RECORD_SEPARATOR + 'висты на В1: ' + config.whists32;

		config.poolRecords1 = formatPoolRecord(poolRecords1);
		config.poolRecords2 = formatPoolRecord(poolRecords2);
		config.poolRecords3 = formatPoolRecord(poolRecords3);
	}
	function formatPoolRecord(record) {
		if (!record)
			return '';

		if ( record.indexOf(POOL_RECORD_SEPARATOR) === 0 )
//			return upperCaseFirstLetter( record.substring(POOL_RECORD_SEPARATOR.length) );
			return ( record.substring(POOL_RECORD_SEPARATOR.length) );

//		return upperCaseFirstLetter(record)
		return record;
	}
	function upperCaseFirstLetter(str) {
		if (!str)
			return '';

		if (str.length == 1)
			return str.toUpperCase();

		return str.substring(0, 1).toUpperCase() + str.substring(1);
	}

	addGameTable({
		  title: 'Шестерная'

		, blocks: [
			  {
				  title: '6 как 4'
				, games: [
					  { player2: 'Вист 6', player3: 'Полвиста', dump1: 8, whists21: 40, whists31: 0 }
					, { player2: 'Вист 6', player3: 'Вист 0',   dump1: 8, whists21: 32, whists31: 8 }
					, { player2: 'Вист 5', player3: 'Вист 1',   dump1: 8, whists21: 28, whists31: 12 }
					, { player2: 'Вист 4', player3: 'Вист 2',   dump1: 8, whists21: 24, whists31: 16 }
					, { player2: 'Вист 3', player3: 'Вист 3',   dump1: 8, whists21: 20, whists31: 20 }
					, { player2: 'Вист 6', player3: 'Пас',      dump1: 8, whists21: 20, whists31: 20 }
				]
			}
			, {
				  title: '6 как без 3 без вистов'
				, games: [
					  { player2: 'Пас', player3: 'Пас', dump1: 12 }
				]
			}
			, {
				  title: '6 как 5'
				, games: [
					  { player2: 'Вист 5', player3: 'Полвиста', dump1: 4, whists21: 28, whists31: 0 }
					, { player2: 'Вист 5', player3: 'Вист 0',   dump1: 4, whists21: 24, whists31: 4 }
					, { player2: 'Вист 4', player3: 'Вист 1',   dump1: 4, whists21: 20, whists31: 8 }
					, { player2: 'Вист 3', player3: 'Вист 2',   dump1: 4, whists21: 16, whists31: 12 }
					, { player2: 'Вист 5', player3: 'Пас',      dump1: 4, whists21: 14, whists31: 14 }
				]
			}
			, {
				  title: '6 как 6'
				, games: [
					  { player2: 'Вист 4', player3: 'Вист 0', pool1: 2, whists21: 16 }
					, { player2: 'Вист 4', player3: 'Пас'   , pool1: 2, whists21: 16 }
					, { player2: 'Вист 3', player3: 'Вист 1', pool1: 2, whists21: 12, whists31: 4 }
					, { player2: 'Вист 2', player3: 'Вист 2', pool1: 2, whists21: 8,  whists31: 8 }
				]
			}
			, {
				  title: '6 как полвиста'
				, games: [
					  { player2: 'Полвиста', player3: 'Пас', pool1: 2, whists21: 8 }
				]
			}
			, {
				  title: '6 как 7'
				, games: [
					  { player2: 'Вист 3', player3: 'Вист 0', pool1: 2, dump3: 2, whists21: 12, whists31: 0 }
					, { player2: 'Вист 2', player3: 'Вист 1', pool1: 2, dump3: 2, whists21: 8,  whists31: 4 }
					, { player2: 'Вист 3', player3: 'Пас',    pool1: 2, dump2: 2, whists21: 12, whists31: 0 }
				]
			}
			, {
				  title: '6 как 8'
				, games: [
					  { player2: 'Вист 2', player3: 'Вист 0', pool1: 2, dump2: 0, dump3: 4, whists21: 8, whists31: 0 }
					, { player2: 'Вист 1', player3: 'Вист 1', pool1: 2, dump2: 2, dump3: 2, whists21: 4, whists31: 4 }
					, { player2: 'Вист 2', player3: 'Пас',    pool1: 2, dump2: 4, dump3: 0, whists21: 8, whists31: 0 }
				]
			}
			, {
				  title: '6 как 9'
				, games: [
					  { player2: 'Вист 1', player3: 'Вист 0', pool1: 2, dump2: 2, dump3: 4, whists21: 4, whists31: 0 }
					, { player2: 'Вист 1', player3: 'Пас',    pool1: 2, dump2: 6, dump3: 0, whists21: 4, whists31: 0 }
				]
			}
			, {
				  title: '6 как 10'
				, games: [
					  { player2: 'Вист 0', player3: 'Вист 0', pool1: 2, dump2: 4, dump3: 4, whists21: 0, whists31: 0 }
					, { player2: 'Вист 0', player3: 'Пас',    pool1: 2, dump2: 8, dump3: 0, whists21: 0, whists31: 0 }
				]
			}
		]
	});

	addGameTable({
		  title: 'Семерная'

		, blocks: [
			  {
				  title: '7 как 5'
				, games: [
					  { player2: 'Вист 5', player3: 'Полвиста', dump1: 16, whists21: 72, whists31: 0 }
					, { player2: 'Вист 5', player3: 'Вист 0',   dump1: 16, whists21: 56, whists31: 16 }
					, { player2: 'Вист 4', player3: 'Вист 1',   dump1: 16, whists21: 48, whists31: 24 }
					, { player2: 'Вист 3', player3: 'Вист 2',   dump1: 16, whists21: 40, whists31: 32 }
					, { player2: 'Вист 5', player3: 'Пас',      dump1: 16, whists21: 36, whists31: 36 }
				]
			}

			, {
				  title: '7 как без 3 без вистов'
				, games: [
					  { player2: 'Пас', player3: 'Пас', dump1: 24, whists21: 0, whists31: 0 }
				]
			}
			, {
				  title: '7 как 6'
				, games: [
					  { player2: 'Вист 4', player3: 'Полвиста', dump1: 8, whists21: 48, whists31: 0 }
					, { player2: 'Вист 4', player3: 'Вист 0',   dump1: 8, whists21: 40, whists31: 8 }
					, { player2: 'Вист 3', player3: 'Вист 1',   dump1: 8, whists21: 32, whists31: 16 }
					, { player2: 'Вист 2', player3: 'Вист 2',   dump1: 8, whists21: 24, whists31: 24 }
					, { player2: 'Вист 4', player3: 'Пас',      dump1: 8, whists21: 24, whists31: 24 }
				]
			}
			, {
				  title: '7 как 7'
				, games: [
					  { player2: 'Вист 3', player3: 'Вист 0', pool1: 4, whists21: 24, whists31: 0 }
					, { player2: 'Вист 3', player3: 'Пас',    pool1: 4, whists21: 24, whists31: 0 }
					, { player2: 'Вист 2', player3: 'Вист 1', pool1: 4, whists21: 16, whists31: 8 }
				]
			}
			, {
				  title: '7 как 8'
				, games: [
					  { player2: 'Вист 2', player3: 'Вист 0', pool1: 4, whists21: 16, whists31: 0 }
					, { player2: 'Вист 2', player3: 'Пас',    pool1: 4, whists21: 16, whists31: 0 }
					, { player2: 'Вист 1', player3: 'Вист 1', pool1: 4, whists21: 8,  whists31: 8 }
				]
			}
			, {
				  title: '7 как полвиста'
				, games: [
					  { player2: 'Полвиста', player3: 'Пас', pool1: 4, whists21: 8, whists31: 0 }
				]
			}
			, {
				  title: '7 как 9'
				, games: [
					  { player2: 'Вист 1', player3: 'Вист 0', pool1: 4, dump2: 0, dump3: 4, whists21: 8, whists31: 0 }
					, { player2: 'Вист 1', player3: 'Пас',    pool1: 4, dump2: 4, dump3: 0, whists21: 8, whists31: 0 }
				]
			}
			, {
				  title: '7 как 10'
				, games: [
					  { player2: 'Вист 0', player3: 'Вист 0', pool1: 4, dump2: 4, dump3: 4, whists21: 0, whists31: 0 }
					, { player2: 'Вист 0', player3: 'Пас',    pool1: 4, dump2: 8, dump3: 0, whists21: 0, whists31: 0 }
				]
			}
		]
	});

	addGameTable({
		  title: 'Восьмерная'

		, blocks: [
			  {
				  title: '8 как 6'
				, games: [
					  { player2: 'Вист 4 (возврат)', player3: 'Пас',    dump1: 24, whists21: 96, whists31: 0 }
					, { player2: 'Вист 4',           player3: 'Вист 0', dump1: 24, whists21: 72, whists31: 24 }
					, { player2: 'Вист 3',           player3: 'Вист 1', dump1: 24, whists21: 60, whists31: 36 }
					, { player2: 'Вист 2',           player3: 'Вист 2', dump1: 24, whists21: 48, whists31: 48 }
					, { player2: 'Вист 4',           player3: 'Пас',    dump1: 24, whists21: 48, whists31: 48 }
				]
			}
			, {
				  title: '8 как без 3 без вистов'
				, games: [
					  { player2: 'Пас', player3: 'Пас', dump1: 36, whists21: 0, whists31: 0 }
				]
			}
			, {
				  title: '8 как 7'
				, games: [
					  { player2: 'Вист 3 (возврат)', player3: 'Пас',    dump1: 12, whists21: 60, whists31: 0 }
					, { player2: 'Вист 3',           player3: 'Вист 0', dump1: 12, whists21: 48, whists31: 12 }
					, { player2: 'Вист 2',           player3: 'Вист 1', dump1: 12, whists21: 36, whists31: 24 }
					, { player2: 'Вист 3',           player3: 'Пас',    dump1: 12, whists21: 30, whists31: 30 }
				]
			}
			, {
				  title: '8 как 8'
				, games: [
					  { player2: 'Вист 2', player3: 'Вист 0', pool1: 6, whists21: 24, whists31: 0 }
					, { player2: 'Вист 2', player3: 'Пас',    pool1: 6, whists21: 24, whists31: 0 }
					, { player2: 'Вист 1', player3: 'Вист 1', pool1: 6, whists21: 12, whists31: 12 }
				]
			}
			, {
				  title: '8 как 9'
				, games: [
					  { player2: 'Вист 1', player3: 'Вист 0', pool1: 6, whists21: 12, whists31: 0 }
					, { player2: 'Вист 1', player3: 'Пас',    pool1: 6, whists21: 12, whists31: 0 }
				]
			}
			, {
				  title: '8 как два паса'
				, games: [
					  { player2: 'Пас', player3: 'Пас', pool1: 6, whists21: 0, whists31: 0 }
				]
			}
			, {
				  title: '8 как 10 (ответственность — второй вистующий)'
				, games: [
					  { player2: 'Вист 0', player3: 'Пас',    pool1: 6, dump2: 6, dump3: 0, whists21: 0, whists31: 0 }
					, { player2: 'Вист 0', player3: 'Вист 0', pool1: 6, dump2: 0, dump3: 6, whists21: 0, whists31: 0 }
				]
			}
			, {
				  title: '8 как 10 (ответственность — оба вистующих)'
				, games: [
					  { player2: 'Вист 0', player3: 'Вист 0', pool1: 6, dump2: 6, dump3: 6, whists21: 0, whists31: 0 }
				]
			}
		]
	});

	addGameTable({
		  title: 'Девятерная'

		, blocks: [
			  {
				  title: '9 как 7'
				, games: [
					  { player2: 'Вист 3 (возврат)', player3: 'Пас',    dump1: 32, whists21: 112, whists31: 0 }
					, { player2: 'Вист 3',           player3: 'Вист 0', dump1: 32, whists21: 80,  whists31: 32 }
					, { player2: 'Вист 2',           player3: 'Вист 1', dump1: 32, whists21: 64,  whists31: 48 }
					, { player2: 'Вист 3',           player3: 'Пас',    dump1: 32, whists21: 56,  whists31: 56 }
				]
			}
			, {
				  title: '9 как без 3 без вистов'
				, games: [
					  { player2: 'Пас', player3: 'Пас', dump1: 48, whists21: 0, whists31: 0 }
				]
			}
			, {
				  title: '9 как 8'
				, games: [
					  { player2: 'Вист 2 (возврат)', player3: 'Пас',    dump1: 16, whists21: 64, whists31: 0 }
					, { player2: 'Вист 2',           player3: 'Вист 0', dump1: 16, whists21: 48, whists31: 16 }
				 	, { player2: 'Вист 1',           player3: 'Вист 1', dump1: 16, whists21: 32, whists31: 32 }
				 	, { player2: 'Вист 2',           player3: 'Пас',    dump1: 16, whists21: 32, whists31: 32 }
				]
			}
			, {
				  title: '9 как 9'
				, games: [
					  { player2: 'Вист 1', player3: 'Вист 0', pool1: 8, whists21: 16, whists31: 0 }
					, { player2: 'Вист 1', player3: 'Пас',    pool1: 8, whists21: 16, whists31: 0 }
				]
			}
			, {
				  title: '9 как два паса'
				, games: [
					  { player2: 'Пас', player3: 'Пас', pool1: 8, whists21: 0, whists31: 0 }
				]
			}
			, {
				  title: '9 как 10 (ответственность — второй вистующий)'
				, games: [
					  { player2: 'Вист 0', player3: 'Пас',    pool1: 8, dump2: 8, dump3: 0, whists21: 0, whists31: 0 }
					, { player2: 'Вист 0', player3: 'Вист 0', pool1: 8, dump2: 0, dump3: 8, whists21: 0, whists31: 0 }
				]
			}
			, {
				  title: '9 как 10 (ответственность — оба вистующих)'
				, games: [
					  { player2: 'Вист 0', player3: 'Пас',    pool1: 8, dump2: 8, dump3: 8, whists21: 0, whists31: 0 }
				]
			}
		]
	});

	addGameTable({
		  title: 'Десятерная'

		, blocks: [
			  {
				  title: '10 как 8'
				, games: [
					  { player2: 'Вист 2 (возврат)', player3: 'Пас',    dump1: 40, whists21: 120, whists31: 0 }
					, { player2: 'Вист 2',           player3: 'Вист 0', dump1: 40, whists21: 80,  whists31: 40 }
					, { player2: 'Вист 1',           player3: 'Вист 1', dump1: 40, whists21: 60,  whists31: 60 }
					, { player2: 'Вист 2',           player3: 'Пас',    dump1: 40, whists21: 60,  whists31: 60 }
				]
			}
			, {
				  title: '10 как без 3 без вистов'
				, games: [
					  { player2: 'Пас', player3: 'Пас', dump1: 60, whists21: 0, whists31: 0 }
				]
			}
			, {
				  title: '10 как 9'
				, games: [
					  { player2: 'Вист 1 (возврат)', player3: 'Пас',    dump1: 20, whists21: 60, whists31: 0 }
					, { player2: 'Вист 1',           player3: 'Вист 0', dump1: 20, whists21: 40, whists31: 20 }
					, { player2: 'Вист 1',           player3: 'Пас',    dump1: 20, whists21: 30, whists31: 30 }
				]
			}
			, {
				  title: '10 как два паса'
				, games: [
					  { player2: 'Пас', player3: 'Пас', pool1: 10, whists21: 0, whists31: 0 }
				]
			}
			, {
				  title: '10 как 10'
				, games: [
					  { player2: 'Вист', player3: 'Пас', pool1: 10, dump2: 10, whists21: 0, whists31: 0 }
				]
			}

		]
	});

	addGameTable({
		  title: 'Распасы первые (в гору по 2 за взятку)'

		, blocks: [
			  {
				  title: 'Распасы как 10 (двое чистых)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 0', dump1: 20, pool2: 2, pool3: 2 }
				]
			}

			, {
				  title: 'Распасы как 9 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 1', dump1: 18, pool2: 2, dump3: 2 }
				]
			}

			, {
				  title: 'Распасы как 8 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 2', dump1: 16, pool2: 2, dump3: 4 }
				]
			}
			, {
				  title: 'Распасы как 8 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 1', dump1: 16, dump2: 2, dump3: 2 }
				]
			}

			, {
				  title: 'Распасы как 7 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 3', dump1: 14, pool2: 2, dump3: 6 }
				]
			}
			, {
				  title: 'Распасы как 7 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 2', dump1: 14, dump2: 2, dump3: 4 }
				]
			}

			, {
				  title: 'Распасы как 6 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 4', dump1: 12, pool2: 2, dump3: 8 }
				]
			}
			, {
				  title: 'Распасы как 6 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 3', dump1: 12, dump2: 2, dump3: 6 }
					, { player2: 'Пас 2', player3: 'Пас 2', dump1: 12, dump2: 4, dump3: 4 }
				]
			}

			, {
				  title: 'Распасы как 5 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 5', dump1: 10, pool2: 2, dump3: 10 }
				]
			}
			, {
				  title: 'Распасы как 5 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 4', dump1: 10, dump2: 2, dump3: 8 }
					, { player2: 'Пас 2', player3: 'Пас 3', dump1: 10, dump2: 4, dump3: 6 }
				]
			}

			, {
				  title: 'Распасы как 4 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 6', dump1: 8, pool2: 2, dump3: 12 }
				]
			}
			, {
				  title: 'Распасы как 4 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 5', dump1: 8, dump2: 2, dump3: 10 }
					, { player2: 'Пас 2', player3: 'Пас 4', dump1: 8, dump2: 4, dump3: 8 }
					, { player2: 'Пас 3', player3: 'Пас 3', dump1: 8, dump2: 6, dump3: 6 }
				]
			}

			, {
				  title: 'Распасы как 3 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 7', dump1: 6, pool2: 2, dump3: 14 }
				]
			}
			, {
				  title: 'Распасы как 3 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 6', dump1: 6, dump2: 2, dump3: 12 }
					, { player2: 'Пас 2', player3: 'Пас 5', dump1: 6, dump2: 4, dump3: 10 }
					, { player2: 'Пас 3', player3: 'Пас 4', dump1: 6, dump2: 6, dump3: 8 }
				]
			}

			, {
				  title: 'Распасы как 2 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 8', dump1: 4, pool2: 2, dump3: 16 }
				]
			}
			, {
				  title: 'Распасы как 2 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 7', dump1: 4, dump2: 2, dump3: 14 }
					, { player2: 'Пас 2', player3: 'Пас 6', dump1: 4, dump2: 4, dump3: 12 }
					, { player2: 'Пас 3', player3: 'Пас 5', dump1: 4, dump2: 6, dump3: 10 }
					, { player2: 'Пас 4', player3: 'Пас 4', dump1: 4, dump2: 8, dump3: 8 }
				]
			}

			, {
				  title: 'Распасы как 1 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 9', dump1: 2, pool2: 2, dump3: 18 }
				]
			}
			, {
				  title: 'Распасы как 1 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 8', dump1: 2, dump2: 2, dump3: 16 }
					, { player2: 'Пас 2', player3: 'Пас 7', dump1: 2, dump2: 4, dump3: 14 }
					, { player2: 'Пас 3', player3: 'Пас 6', dump1: 2, dump2: 6, dump3: 12 }
					, { player2: 'Пас 4', player3: 'Пас 5', dump1: 2, dump2: 8, dump3: 10 }
				]
			}

			, {
				  title: 'Распасы как 0 (двое чистых)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 10', pool1: 2, pool2: 2, dump3: 20 }
				]
			}
			, {
				  title: 'Распасы как 0 (один чистый)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 9', pool1: 2, dump2: 2,  dump3: 18 }
					, { player2: 'Пас 2', player3: 'Пас 8', pool1: 2, dump2: 4,  dump3: 16 }
					, { player2: 'Пас 3', player3: 'Пас 7', pool1: 2, dump2: 6,  dump3: 14 }
					, { player2: 'Пас 4', player3: 'Пас 6', pool1: 2, dump2: 8,  dump3: 12 }
					, { player2: 'Пас 5', player3: 'Пас 5', pool1: 2, dump2: 10, dump3: 10 }
				]
			}
		]
	});
	addGameTable({
		  title: 'Распасы вторые (в гору по 4 за взятку)'

		, blocks: [
			  {
				  title: 'Распасы как 10 (двое чистых)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 0', dump1: 40, pool2: 4, pool3: 4 }
				]
			}

			, {
				  title: 'Распасы как 9 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 1', dump1: 36, pool2: 4, dump3: 4 }
				]
			}

			, {
				  title: 'Распасы как 8 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 2', dump1: 32, pool2: 4, dump3: 8 }
				]
			}
			, {
				  title: 'Распасы как 8 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 1', dump1: 32, dump2: 4, dump3: 4 }
				]
			}

			, {
				  title: 'Распасы как 7 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 3', dump1: 28, pool2: 4, dump3: 12 }
				]
			}
			, {
				  title: 'Распасы как 7 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 2', dump1: 28, dump2: 4, dump3: 8 }
				]
			}

			, {
				  title: 'Распасы как 6 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 4', dump1: 24, pool2: 4, dump3: 16 }
				]
			}
			, {
				  title: 'Распасы как 6 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 3', dump1: 24, dump2: 4, dump3: 12 }
					, { player2: 'Пас 2', player3: 'Пас 2', dump1: 24, dump2: 8, dump3: 8 }
				]
			}

			, {
				  title: 'Распасы как 5 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 5', dump1: 20, pool2: 4, dump3: 20 }
				]
			}
			, {
				  title: 'Распасы как 5 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 4', dump1: 20, dump2: 4, dump3: 16 }
					, { player2: 'Пас 2', player3: 'Пас 3', dump1: 20, dump2: 8, dump3: 12 }
				]
			}

			, {
				  title: 'Распасы как 4 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 6', dump1: 16, pool2: 4, dump3: 24 }
				]
			}
			, {
				  title: 'Распасы как 4 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 5', dump1: 16, dump2: 4,  dump3: 20 }
					, { player2: 'Пас 2', player3: 'Пас 4', dump1: 16, dump2: 8,  dump3: 16 }
					, { player2: 'Пас 3', player3: 'Пас 3', dump1: 16, dump2: 12, dump3: 12 }
				]
			}

			, {
				  title: 'Распасы как 3 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 7', dump1: 12, pool2: 4, dump3: 28 }
				]
			}
			, {
				  title: 'Распасы как 3 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 6', dump1: 12, dump2: 4,  dump3: 24 }
					, { player2: 'Пас 2', player3: 'Пас 5', dump1: 12, dump2: 8,  dump3: 20 }
					, { player2: 'Пас 3', player3: 'Пас 4', dump1: 12, dump2: 12, dump3: 16 }
				]
			}

			, {
				  title: 'Распасы как 2 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 8', dump1: 8, pool2: 4, dump3: 32 }
				]
			}
			, {
				  title: 'Распасы как 2 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 7', dump1: 8, dump2: 4,  dump3: 28 }
					, { player2: 'Пас 2', player3: 'Пас 6', dump1: 8, dump2: 8,  dump3: 24 }
					, { player2: 'Пас 3', player3: 'Пас 5', dump1: 8, dump2: 12, dump3: 20 }
					, { player2: 'Пас 4', player3: 'Пас 4', dump1: 8, dump2: 16, dump3: 16 }
				]
			}

			, {
				  title: 'Распасы как 1 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 9', dump1: 4, pool2: 4, dump3: 36 }
				]
			}
			, {
				  title: 'Распасы как 1 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 8', dump1: 4, dump2: 4,  dump3: 32 }
					, { player2: 'Пас 2', player3: 'Пас 7', dump1: 4, dump2: 8,  dump3: 28 }
					, { player2: 'Пас 3', player3: 'Пас 6', dump1: 4, dump2: 12, dump3: 24 }
					, { player2: 'Пас 4', player3: 'Пас 5', dump1: 4, dump2: 16, dump3: 20 }
				]
			}

			, {
				  title: 'Распасы как 0 (двое чистых)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 10', pool1: 4, pool2: 4, dump3: 40 }
				]
			}
			, {
				  title: 'Распасы как 0 (один чистый)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 9', pool1: 4, dump2: 4,  dump3: 36 }
					, { player2: 'Пас 2', player3: 'Пас 8', pool1: 4, dump2: 8,  dump3: 32 }
					, { player2: 'Пас 3', player3: 'Пас 7', pool1: 4, dump2: 12, dump3: 28 }
					, { player2: 'Пас 4', player3: 'Пас 6', pool1: 4, dump2: 16, dump3: 24 }
					, { player2: 'Пас 5', player3: 'Пас 5', pool1: 4, dump2: 20, dump3: 20 }
				]
			}
		]
	});
	addGameTable({
		  title: 'Распасы третьи (в гору по 6 за взятку)'

		, blocks: [
			  {
				  title: 'Распасы как 10 (двое чистых)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 0', dump1: 60, pool2: 6, pool3: 6 }
				]
			}

			, {
				  title: 'Распасы как 9 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 1', dump1: 54, pool2: 6, dump3: 6 }
				]
			}

			, {
				  title: 'Распасы как 8 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 2', dump1: 48, pool2: 6, dump3: 12 }
				]
			}
			, {
				  title: 'Распасы как 8 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 1', dump1: 48, dump2: 6, dump3: 6 }
				]
			}

			, {
				  title: 'Распасы как 7 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 3', dump1: 42, pool2: 6, dump3: 18 }
				]
			}
			, {
				  title: 'Распасы как 7 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 2', dump1: 42, dump2: 6, dump3: 12 }
				]
			}

			, {
				  title: 'Распасы как 6 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 4', dump1: 36, pool2: 6, dump3: 24 }
				]
			}
			, {
				  title: 'Распасы как 6 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 3', dump1: 36, dump2: 6, dump3: 18 }
					, { player2: 'Пас 2', player3: 'Пас 2', dump1: 36, dump2: 12, dump3: 12 }
				]
			}

			, {
				  title: 'Распасы как 5 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 5', dump1: 30, pool2: 6, dump3: 30 }
				]
			}
			, {
				  title: 'Распасы как 5 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 4', dump1: 30, dump2: 6,  dump3: 24 }
					, { player2: 'Пас 2', player3: 'Пас 3', dump1: 30, dump2: 12, dump3: 18 }
				]
			}

			, {
				  title: 'Распасы как 4 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 6', dump1: 24, pool2: 6, dump3: 36 }
				]
			}
			, {
				  title: 'Распасы как 4 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 5', dump1: 24, dump2: 6,  dump3: 30 }
					, { player2: 'Пас 2', player3: 'Пас 4', dump1: 24, dump2: 12, dump3: 24 }
					, { player2: 'Пас 3', player3: 'Пас 3', dump1: 24, dump2: 18, dump3: 18 }
				]
			}

			, {
				  title: 'Распасы как 3 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 7', dump1: 18, pool2: 6, dump3: 42 }
				]
			}
			, {
				  title: 'Распасы как 3 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 6', dump1: 18, dump2: 6,  dump3: 36 }
					, { player2: 'Пас 2', player3: 'Пас 5', dump1: 18, dump2: 12, dump3: 30 }
					, { player2: 'Пас 3', player3: 'Пас 4', dump1: 18, dump2: 18, dump3: 24 }
				]
			}

			, {
				  title: 'Распасы как 2 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 8', dump1: 12, pool2: 6, dump3: 48 }
				]
			}
			, {
				  title: 'Распасы как 2 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 7', dump1: 12, dump2: 6,  dump3: 42 }
					, { player2: 'Пас 2', player3: 'Пас 6', dump1: 12, dump2: 12, dump3: 36 }
					, { player2: 'Пас 3', player3: 'Пас 5', dump1: 12, dump2: 18, dump3: 30 }
					, { player2: 'Пас 4', player3: 'Пас 4', dump1: 12, dump2: 24, dump3: 24 }
				]
			}

			, {
				  title: 'Распасы как 1 (один чистый)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 9', dump1: 6, pool2: 6, dump3: 54 }
				]
			}
			, {
				  title: 'Распасы как 1 (нет чистых)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 8', dump1: 6, dump2: 6,  dump3: 48 }
					, { player2: 'Пас 2', player3: 'Пас 7', dump1: 6, dump2: 12, dump3: 42 }
					, { player2: 'Пас 3', player3: 'Пас 6', dump1: 6, dump2: 18, dump3: 36 }
					, { player2: 'Пас 4', player3: 'Пас 5', dump1: 6, dump2: 24, dump3: 30 }
				]
			}

			, {
				  title: 'Распасы как 0 (двое чистых)'
				, games: [
					  { player2: 'Пас 0', player3: 'Пас 10', pool1: 6, pool2: 6, dump3: 60 }
				]
			}
			, {
				  title: 'Распасы как 0 (один чистый)'
				, games: [
					  { player2: 'Пас 1', player3: 'Пас 9', pool1: 6, dump2: 6,  dump3: 54 }
					, { player2: 'Пас 2', player3: 'Пас 8', pool1: 6, dump2: 12, dump3: 48 }
					, { player2: 'Пас 3', player3: 'Пас 7', pool1: 6, dump2: 18, dump3: 42 }
					, { player2: 'Пас 4', player3: 'Пас 6', pool1: 6, dump2: 24, dump3: 36 }
					, { player2: 'Пас 5', player3: 'Пас 5', pool1: 6, dump2: 30, dump3: 30 }
				]
			}
		]
	});

	addGameTable({
		  title: 'Мизер'

		, blocks: [
			  {
				  title: 'Мизер как 10'
				, games: [
					  { player2: 'Пас', player3: 'Пас', pool1: 0, dump1: 200 }
				]
			}
			, {
				  title: 'Мизер как 9'
				, games: [
					  { player2: 'Пас', player3: 'Пас', pool1: 0, dump1: 180 }
				]
			}
			, {
				  title: 'Мизер как 8'
				, games: [
					  { player2: 'Пас', player3: 'Пас', pool1: 0, dump1: 160 }
				]
			}
			, {
				  title: 'Мизер как 7'
				, games: [
					  { player2: 'Пас', player3: 'Пас', pool1: 0, dump1: 140 }
				]
			}
			, {
				  title: 'Мизер как 6'
				, games: [
					  { player2: 'Пас', player3: 'Пас', pool1: 0, dump1: 120 }
				]
			}
			, {
				  title: 'Мизер как 5'
				, games: [
					  { player2: 'Пас', player3: 'Пас', pool1: 0, dump1: 100 }
				]
			}
			, {
				  title: 'Мизер как 4'
				, games: [
					  { player2: 'Пас', player3: 'Пас', pool1: 0, dump1: 80 }
				]
			}
			, {
				  title: 'Мизер как 3'
				, games: [
					  { player2: 'Пас', player3: 'Пас', pool1: 0, dump1: 60 }
				]
			}
			, {
				  title: 'Мизер как 2'
				, games: [
					  { player2: 'Пас', player3: 'Пас', pool1: 0, dump1: 40 }
				]
			}
			, {
				  title: 'Мизер как 1'
				, games: [
					  { player2: 'Пас', player3: 'Пас', pool1: 0, dump1: 20 }
				]
			}
			, {
				  title: 'Мизер как мизер'
				, games: [
					  { player2: 'Пас', player3: 'Пас', pool1: 10, dump1: 0 }
				]
			}
		]
	});

</script>
</body>
</html>